<?php

	class Conexao extends PDO {
	 
	    private static $instancia;
	 
	    public function Conexao($dsn, $username = "", $password = "") {
	        // O construtro abaixo é o do PDO
	        parent::__construct($dsn, $username, $password);
	    }
	 
	    public static function getInstance() {
	        // Se o a instancia não existe eu faço uma
	        if(!isset( self::$instancia )){
	            try {
	            	
	            	$host 		= Config::$DATABASE['host'];
	            	$database 	= Config::$DATABASE['database'];
	            	$user 		= Config::$DATABASE['user'];
	            	$pass 		= Config::$DATABASE['pass'];
	            	
	            	$pdoOptions  = array(
	            		PDO::ATTR_PERSISTENT 			=> Config::$DATABASE["persistent"],
	            		PDO::MYSQL_ATTR_INIT_COMMAND 	=> 'SET NAMES utf8',
	            		PDO::ATTR_ERRMODE 				=> PDO::ERRMODE_EXCEPTION
	            	);
	            	
	                self::$instancia = new Conexao("mysql:host=$host;dbname=$database", $user, $pass);
	                self::$instancia->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
	                
	                self::$instancia->exec("SET CHARACTER SET utf8");
	                self::$instancia->exec("SET SESSION sql_mode='STRICT_ALL_TABLES'");
	                
	            } catch ( Exception $e ) {
	                echo 'Erro ao conectar';
	                exit ();
	            }
	        }
	        // Se já existe instancia na memória eu retorno ela
	        return self::$instancia;
	    }
	}

?>